#pragma once

// Copyright (c) 2010 Manuel Peinado Gallego <manuel.peinado@gmail.com>
// Distributed under the MIT license

#include "LightNode.h"

class LightNode;

class LightManager
{
public:
    LightManager();

    bool acceptsMoreLights() const;
    int registerLight(ref<LightNode> light);

    void updateLighting();

    void clear();

protected:

    size_t getMaxNbLights() const;

private:

    typedef std::map<ref<LightNode>, int> LightToId;
    LightToId m_registeredLights;
    std::set<int> m_lightIds;
};

